Method, apparatus and computer program product for enabling scrubbing of a media file

ABSTRACT

A method, apparatus and computer program product are provided for enabling scrubbing of a media file. Swiping gestures of varying speeds and directions may applied to a touch screen display such that a playhead indicating a selected frame of a media file moves at speeds relative to the swiping gesture, and in a direction of the swiping gesture. When the swiping gesture falls below a threshold speed, fine control in frame-by-frame increments is enabled. A user may therefore select a precisely desired frame for purposes such as playback and/or video editing, with a continuous swiping gesture and in as small as a space as provided by the touch screen display of a mobile device.

TECHNOLOGICAL FIELD

An example embodiment of the present invention relates generally toenabling scrubbing of a media file, and more particularly, to a method,apparatus and computer program product for enabling scrubbing of a mediafile with a swiping gesture on a mobile device.

BACKGROUND

Improvements to the processing power and memory capacity of mobiledevices has led to an increase of use of mobile devices for audio andvideo capture functions. Because of the widespread availability ofmobile devices including cameras, users are quick to capture mediafiles, such as video and/or audio files, of a wide variety of eventsthat occur both in everyday life and on special occasions. Previouslimitations of mobile devices have been improved to the extent that manyusers rely on their mobile smart phones for media capture instead of anadditional, bulkier camera or recording device.

Furthermore, the popularity of social networking has also led to anincrease in use of mobile devices for recording media. Users capturemedia with their mobile devices and upload the media on the fly so as toshare the media on social networking sites and the like. In someexamples, a user may wish to edit a media file, such as to upload only aportion of a media file instead of the entire media file, or add audioor visual affects to a specific portion of a media file, for example.

However, some limitations still exist with regard to the small nature ofsuch mobile devices and the ability to configure and manipulate mediafiles on the mobile device. Such limitations particularly limit theability of a user to edit a precise portion of a relatively long mediafile using a relatively small user interface of a mobile device. Manyusers therefore must first transmit such media files to a laptop orpersonal computer to work with the media file.

BRIEF SUMMARY

A method, apparatus, and computer program product are therefore providedfor enabling scrubbing of a media file with a swiping gesture. Scrubbingrefers to moving a playhead (e.g., a starting point of the media file atwhich to resume playback, or to begin editing) to a desired particularframe of a media file. Certain example embodiments described herein mayprovide for efficient movement of a playhead in a media file with theuse of a continuous swiping gesture provided via the touch screendisplay of a mobile device. For example, a user may capture mediacontent on a device and desire to edit the media content byincorporating an audio file at a particular position in the video file.As another example, a user may want to enhance or edit certain qualitiesof a media file and may need to narrow selection to a particular frameor frames. According to example embodiments, playback may also beprovided to enable user selection of an intended selection point. Ingeneral, the user makes swiping gestures in varying speeds anddirections on the mobile device touch screen to control a playhead, orselection point, of the media file to the precise desired frame of themedia file. As commonly described herein, the user may make swipinggestures to a touch screen display. However, it will be appreciated thatother types of user interfaces and use inputs to the user interfaces maybe used, according to example embodiments. For example, a user mayprovide user inputs with a mouse, in positions indicated by a cursor ona display.

In an example embodiment, a method for enabling scrubbing of a mediafile with use of a touch screen display is provided that includesreceiving an indication of a swiping gesture, determining a number offrames by which to move a playhead. The number of frames may bedetermined based upon a seek calculation, which, in turn, is based on afirst speed of the swiping gesture, the distance of the swiping gesture,and an inflection value. The inflection value is predefined as the speedat which the playhead moves at a same speed as the swiping gesture. Themethod may also include identifying an updated playhead position basedon a previous position of the playhead and the seek calculation, andcausing the playhead to move to the updated playhead position.

In some embodiments, the method further includes receiving an indicationof a continuation of the swiping gesture, such as in an instance inwhich a pointing object is not removed from the touch screen displaysurface during the swiping gesture. The method of this embodimentcalculates a second seek calculation based on a second speed that variesfrom the first speed, a second direction of the continuation of theswiping gesture, a second distance of the continuation of the swipinggesture, and the inflection value. The method of this embodiment alsoidentifies a second playhead position based on the updated playheadposition and the second seek calculation, and causes the playhead tomove to the second playhead position.

In some examples, the continuation of the swiping gesture comprises achange in direction such that second direction of the continuation ofthe swiping gesture is opposite of the first direction of the swipinggesture. In some embodiments, the method further includes causingplayback of the media file at a current playhead position in response toremoval of the swiping gesture.

In some examples, the seek calculation is calculated in frames as adirect proportion of the inflection value, the first speed, and thefirst distance. In some embodiments, the inflection value is apredefined number of frames per second, the first speed is determined inpixels per second, and the first distance is determined in pixels.

In some embodiments, the method further includes determining a unit ofrequired distance of the swiping gesture by which to move the playheadone frame, determining the first speed is less than a threshold speed,and causing the playhead to move one frame per unit of required distanceof the swiping gesture.

In another example embodiment, an apparatus is provided for enablingscrubbing of a media file with use of a touch screen display. Theapparatus includes at least one processor and at least one memoryincluding computer program code with the at least one memory andcomputer program code configured to, with the processor, cause theapparatus to perform receiving an indication of a swiping gesture,determining a number of frames by which to move a playhead. The numberof frames may be determined based upon a seek calculation, which, inturn, is based on a first speed of the swiping gesture. The distance ofthe swiping gesture, and an inflection value, wherein the inflectionvalue is predefined as the speed at which the playhead moves at a samespeed as the swiping gesture. The at least one memory and computerprogram code are further configured for identifying an updated playheadposition based on a previous position of the playhead and the seekcalculation, and causing the playhead to move to the updated playheadposition.

In some examples, the at least one memory and computer program code arefurther configured to cause the apparatus to perform receiving anindication of a continuation of the swiping gesture such as in aninstance a pointing object is not removed from the touch screen displaysurface during the swiping gesture. The at least one memory and computerprogram are further configured for performing a second seek calculationbased on a second speed that varies from the first speed, a seconddirection of the continuation of the swiping gesture, a second distanceof the continuation of the swiping gesture, and the inflection value,identifying a second playhead position based on the updated playheadposition and the second seek calculation, and causing the playhead tomove to the second playhead position.

In some examples, the at least one memory and computer program code arefurther configured to cause the apparatus to perform causing playback ofthe media file at a current playhead position in response to removal ofthe swiping gesture. In some examples, the seek calculation iscalculated in frames as a direct proportion of the inflection value, thefirst speed, and the first distance, wherein the inflection value is apredefined number of frames per second, the first speed is determined inpixels per second, and the first distance is determined in pixels.

In some examples, the at least one memory and computer program code arefurther configured to cause the apparatus to perform determining a unitof required distance of the swiping gesture by which to move theplayhead one frame, determining the first speed is less than a thresholdspeed, and causing the playhead to move one frame per unit of requireddistance of the swiping gesture.

In a further example embodiment, a computer program product is providedfor enabling scrubbing of a media file with use of a touch screendisplay. The computer program products includes at least onenon-transitory computer-readable storage media havingcomputer-executable program code portions stored therein with thecomputer-executable program code portions including program codeinstructions configured for receiving an indication of a swipinggesture. The program code instructions may be further configured fordetermining a number of frames by which to move a playhead. The numberof frames may be based on a seek calculation, which, in turn, is basedon a first speed of the swiping gesture, the distance of the swipinggesture, and an inflection value, wherein the inflection value ispredefined as the speed at which the playhead moves at a same speed asthe swiping gesture. The program code instructions may be furtherconfigured for identifying an updated playhead position based on aprevious position of the playhead and the seek calculation, and causingthe playhead to move to the updated playhead position.

In some embodiments, the computer-executable program code portionsfurther include program code instructions configured for receiving anindication of a continuation of the swiping gesture, such as in aninstance a pointing object is not removed from the touch screen displaysurface during the swiping gesture, performing a second seek calculationbased on a second speed that varies from the first speed, a seconddirection of the continuation of the swiping gesture, a second distanceof the continuation of the swiping gesture, and the inflection value,identifying a second playhead position based on the updated playheadposition and the second seek calculation, and causing the playhead tomove to the second playhead position.

In some examples, the continuation of the swiping gesture comprises achange in direction such that second direction of the continuation ofthe swiping gesture is opposite of the first direction of the swipinggesture.

In some embodiments, the computer-executable program code portionsfurther include program code instructions configured for causingplayback of the media file at a current playhead position in response toremoval of the swiping gesture. In some examples, the seek calculationis calculated in frames as a direct proportion of the inflection value,the first speed, and the first distance, wherein the inflection value isa predefined number of frames per second, the first speed is determinedin pixels per second, and the first distance is determined in pixels.

In some embodiments, the computer-executable program code portionsfurther include program code instructions configured for determining aunit of required distance of the swiping gesture by which to move theplayhead one frame, determining the first speed is less than a thresholdspeed, and causing the playhead to move one frame per unit of requireddistance of the swiping gesture.

In yet another example embodiment, an apparatus is provided thatincludes means for enabling scrubbing of a media file with use of atouch screen display. The apparatus comprises means for receiving anindication of a swiping gesture. The apparatus further includes meansfor determining a number of frames by which to move a playhead. Thenumber of frames is based on a seek calculation, which, in turn, isbased on a first speed of the swiping gesture, the distance of theswiping gesture, and an inflection value, wherein the inflection valueis predefined as the speed at which the playhead moves at a same speedas the swiping gesture, means for identifying an updated playheadposition based on a previous position of the playhead and the seekcalculation, means for causing the playhead to move to the updatedplayhead position.

BRIEF DESCRIPTION OF THE DRAWINGS

Having thus described certain example embodiments of the presentinvention in general terms, reference will hereinafter be made to theaccompanying drawings which are not necessarily drawn to scale, andwherein:

FIG. 1 is an example user interface according to an example embodiment;

FIG. 2 is a block diagram of an apparatus that may be configured toprovide a user interface in accordance with an example embodiment of thepresent invention;

FIG. 3 is a flowchart of operations for enabling scrubbing of a mediafile with a swiping gesture according to an example embodiment;

FIG. 4 is an updated example user interface following a swiping gestureaccording to an example embodiment; and

FIG. 5 is a flowchart of operations for enabling scrubbing of a mediafile frame by frame with a swiping gesture according to an exampleembodiment.

DETAILED DESCRIPTION

Some embodiments of the present invention will now be described morefully hereinafter with reference to the accompanying drawings, in whichsome, but not all, embodiments of the invention are shown. Indeed,various embodiments of the invention may be embodied in many differentforms and should not be construed as limited to the embodiments setforth herein; rather, these embodiments are provided so that thisdisclosure will satisfy applicable legal requirements. Like referencenumerals refer to like elements throughout. As used herein, the terms“data,” “content,” “information,” and similar terms may be usedinterchangeably to refer to data capable of being transmitted, receivedand/or stored in accordance with embodiments of the present invention.Thus, use of any such terms should not be taken to limit the spirit andscope of embodiments of the present invention.

Additionally, as used herein, the term ‘circuitry’ refers to (a)hardware-only circuit implementations (e.g., implementations in analogcircuitry and/or digital circuitry); (b) combinations of circuits andcomputer program product(s) comprising software and/or firmwareinstructions stored on one or more computer readable memories that worktogether to cause an apparatus to perform one or more functionsdescribed herein; and (c) circuits, such as, for example, amicroprocessor(s) or a portion of a microprocessor(s), that requiresoftware or firmware for operation even if the software or firmware isnot physically present. This definition of ‘circuitry’ applies to alluses of this term herein, including in any claims. As a further example,as used herein, the term ‘circuitry’ also includes an implementationcomprising one or more processors and/or portion(s) thereof andaccompanying software and/or firmware. As another example, the term‘circuitry’ as used herein also includes, for example, a basebandintegrated circuit or applications processor integrated circuit for amobile phone or a similar integrated circuit in a server, a cellularnetwork device, other network device, and/or other computing device.

As defined herein, a “computer-readable storage medium,” which refers toa physical storage medium (e.g., volatile or non-volatile memorydevice), may be differentiated from a “computer-readable transmissionmedium,” which refers to an electromagnetic signal.

A method, apparatus and computer program product are provided inaccordance with an example embodiment of the present invention in orderto enable scrubbing of a media file with a swiping gesture on a mobiledevice. FIG. 1 is an example user interface 28 for providing scrubbingand/or playback of a media file according to example embodiments. Theuser interface 28 may include at least a touch screen display 29configured to display output to the user and to detect input by apointing object, such as pointing object 10, which may include a hand,stylus, or any other object. The pointing object 10 may be swiped ordragged across the touch screen display 29, while maintaining contactwith the touch screen display 29 as shown by the indication 12, toproduce a swiping gesture. The touch screen display 29 and/or associatedprocessing circuitry may detect various directions and/or speeds of theswiping gesture, which may be used to reposition a playhead of a mediafile as described herein.

Area 2 of the touch screen display 29 may be used to display a pausedframe of a media file based on a current location of playhead 4, and/ormay provide playback of the media file. The playhead 4 may visuallyrepresent a current location within the media file relative to thelength of the media file as indicated by media bar 6. In some examples,the playhead 4 and/or media bar 6 is not displayed, but the playhead 4may be referred to herein to refer to a selected position within themedia file, at which position the media file may be paused, or at whichplayback will commence, and the media bar 6 may be referred to herein asa representation (whether visual or non-visual) of the length of themedia file. As the playhead 4 moves as described herein according toexample embodiments, area 2 may be updated accordingly to display acurrently selected frame. In some examples, an indication of a currentpoint in time or timestamp 8 may be provided that coincides with theposition of the playhead 4 and/or currently selected frame of the mediafile. In some examples, an indication of the current point in time ortimestamp 8 may not be displayed.

FIG. 2 is a schematic diagram of an example apparatus configured forperforming any of the operations described herein. Apparatus 20 is anexample embodiment that may be embodied by or associated with any of avariety of computing devices that include or are otherwise associatedwith a user interface that facilitates scrubbing of media files with aswiping gesture. For example, the computing device may be a mobileterminal, such as a personal digital assistant (PDA), mobile telephone,smart phone, companion device, for example, a smart watch, pager, mobiletelevision, gaming device, laptop computer, camera, tablet computer,touch surface, video recorder, audio/video player, radio, electronicbook or any combination of the aforementioned, and other types of voiceand text communications systems. Alternatively, the computing device maybe a fixed computing device, such as a personal computer, a computerworkstation, a kiosk or the like. Still further, the apparatus may beembodied by or associated with a plurality of computing devices that arein communication with or otherwise networked with one another such thatthe various functions performed by the apparatus may be divided betweenthe plurality of computing devices that operate in collaboration withone another. For purposes of illustration, but not of limitation, anapparatus 20 embodied by a mobile terminal 22, such as a smart phone, isdepicted and will be described herein. However, the apparatus may beembodied by other types of computing devices as noted above.

The apparatus 20 may include, be associated with or otherwise incommunication with a processor 24, a memory device 26 and a userinterface 28. In some embodiments, the processor (and/or co-processorsor any other processing circuitry assisting or otherwise associated withthe processor) may be in communication with the memory device via a busfor passing information among components of the apparatus. The memorydevice may be non-transitory and may include, for example, one or morevolatile and/or non-volatile memories. In other words, for example, thememory device may be an electronic storage device (for example, acomputer readable storage medium) comprising gates configured to storedata (for example, bits) that may be retrievable by a machine (forexample, a computing device like the processor). The memory device maybe configured to store information, data, content, applications,instructions, or the like for enabling the apparatus to carry outvarious functions in accordance with an example embodiment of thepresent invention. For example, the memory device could be configured tobuffer input data for processing by the processor. Additionally oralternatively, the memory device could be configured to storeinstructions for execution by the processor.

As noted above, the apparatus 20 may be embodied by a computing device.However, in some embodiments, the apparatus may be embodied as a chip orchip set. In other words, the apparatus may comprise one or morephysical packages (for example, chips) including materials, componentsand/or wires on a structural assembly (for example, a circuit board).The structural assembly may provide physical strength, conservation ofsize, and/or limitation of electrical interaction for componentcircuitry included thereon. The apparatus may therefore, in some cases,be configured to implement an embodiment of the present invention on asingle chip or as a single “system on a chip.” As such, in some cases, achip or chipset may constitute means for performing one or moreoperations for providing the functionalities described herein.

The processor 24 may be embodied in a number of different ways. Forexample, the processor may be embodied as one or more of varioushardware processing means such as a coprocessor, a microprocessor, acontroller, a digital signal processor (DSP), a processing element withor without an accompanying DSP, or various other processing circuitryincluding integrated circuits such as, for example, an ASIC (applicationspecific integrated circuit), an FPGA (field programmable gate array), amicrocontroller unit (MCU), a hardware accelerator, a special-purposecomputer chip, or the like. As such, in some embodiments, the processormay include one or more processing cores configured to performindependently. A multi-core processor may enable multiprocessing withina single physical package. Additionally or alternatively, the processormay include one or more processors configured in tandem via the bus toenable independent execution of instructions, pipelining and/ormultithreading.

In an example embodiment, the processor 24 may be configured to executeinstructions stored in the memory device 26 or otherwise accessible tothe processor. Alternatively or additionally, the processor may beconfigured to execute hard coded functionality. As such, whetherconfigured by hardware or software methods, or by a combination thereof,the processor may represent an entity (for example, physically embodiedin circuitry) capable of performing operations according to anembodiment of the present invention while configured accordingly. Thus,for example, when the processor is embodied as an ASIC, FPGA or thelike, the processor may be specifically configured hardware forconducting the operations described herein. Alternatively, as anotherexample, when the processor is embodied as an executor of softwareinstructions, the instructions may specifically configure the processorto perform the algorithms and/or operations described herein when theinstructions are executed. However, in some cases, the processor may bea processor of a specific device (for example, the computing device)configured to employ an embodiment of the present invention by furtherconfiguration of the processor by instructions for performing thealgorithms and/or operations described herein. The processor mayinclude, among other things, a clock, an arithmetic logic unit (ALU) andlogic gates configured to support operation of the processor.

The apparatus 20 of an example embodiment may also include or otherwisebe in communication with a user interface 28. The user interface mayinclude a touch screen display, a keyboard, a mouse, a joystick or otherinput/output mechanisms. In some embodiments, the user interface, suchas a display, speakers, or the like, may also be configured to provideoutput to the user. In this example embodiment, the processor 24 maycomprise user interface circuitry configured to control at least somefunctions of one or more input/output mechanisms. The processor and/oruser interface circuitry comprising the processor may be configured tocontrol one or more functions of one or more input/output mechanismsthrough computer program instructions (for example, software and/orfirmware) stored on a memory accessible to the processor (for example,memory device 24, and/or the like).

The apparatus 20 of an example embodiment may also optionally include acommunication interface that may be any means such as a device orcircuitry embodied in either hardware or a combination of hardware andsoftware that is configured to receive and/or transmit data from/toother electronic devices in communication with the apparatus. In thisregard, the communication interface may include, for example, an antenna(or multiple antennas) and supporting hardware and/or software forenabling communications with a wireless communication network.Additionally or alternatively, the communication interface may includethe circuitry for interacting with the antenna(s) to cause transmissionof signals via the antenna(s) or to handle receipt of signals receivedvia the antenna(s). In some environments, the communication interfacemay alternatively or also support wired communication.

FIG. 3 is a flowchart of operations for enabling scrubbing of a mediafile. As shown by operation 300, the apparatus 20, may include means,such as processor 24, user interface 28, and/or the like, for receivingan indication of a swiping gesture. The swiping gesture may be providedwith a pointing object 10, for example, and may include a user swipingtheir finger across the touch screen display 29.

As shown by operation 310, the apparatus 20, may include means, such asprocessor 24, and/or the like for determining a number of frames bywhich to move a playhead. The number of frames may be based on a seekcalculation, which, in turn, may be based on a first speed of theswiping gesture, the distance of the swiping gesture, and an inflectionvalue. The inflection value may be predefined as the speed at which theplayhead moves at the same speed as the swiping gesture.

For example, an inflection value of 100 pixels per second may indicatethat the playhead moves at the same speed (100 pixels per second) as thepointing object 10 when the speed of the swiping gesture (e.g., pointingobject 10) is 100 pixels per second. However, the number of frames, ortime the playhead moves within the media file is dependent on the lengthof the media bar 6 in pixels. If the media bar 6 is 600 pixels long, andan example media file is 60 seconds, each pixel of the media bar 6equates to approximately 0.1 seconds of the media file. Therefore, whena user provides a swiping gesture at a speed equaling the inflectionvalue of 100 pixels per second, over a distance of 200 pixels, theplayhead 4 moves approximately 200 pixels, or 20 seconds of the mediafile (200×0.1). If the media file provides a frame rate of 50 frames persecond, the change to the playhead position, or seek calculation, mayalso be calculated as 1,000 frames (20×50). Therefore, the seekcalculation, or movement of the playhead 4, may be first calculated inpixels, which corresponds to a change in point in time of the media fileand/or frames of the media file.

The above example refers to a scenario in which the swiping gesture isprovided at the same speed as the inflection value. A formula tocalculate the number of frames based on the swiping gesture being thesame speed as the inflection value may be number of frames=timespan ofmedia file to skip×frame rate of media file, where the timespan of mediafile to skip=length of swiping gesture×(duration of media file÷length ofmedia bar or touch screen display). Using the above example, the numberof frames=200 pixels×(60 seconds÷ 600 pixels)×50 frames per second=1,000frames.

It will be appreciated the length of the media bar 6 is referred toherein in order to determine movement of the playhead 4. In examples inwhich a media bar 6 is not present, a length of the touch screen display29, or length of a predetermined portion of the touch screen display 29may be used as a basis by which to determine movement of the playhead 4,instead of the length of the media bar 6.

As another example, the speed of the swiping gesture may vary from theinflection value. The seek calculation may, in some embodiments, becalculated as a direct proportion of the inflection value, the firstspeed, and the first distance. For example, using the above example ofan inflection value of 100 pixels per second, a swiping gesture providedat the speed of 50 pixels per second may result in a movement of theplayhead 4 that is half the speed of the swiping gesture. Saiddifferently, a swiping gesture of 50 pixels per second and a distance of200 pixels may result in a seek calculation of only 100 pixels. Giventhe above assumptions of a 600 pixel media bar, 60 second media file,and frame rate of 50 frames per second, the seek calculation mayalternatively be calculated as 10 seconds of the media file, or 500frames.

Therefore, a formula to calculate the number of frames by which to movethe playhead 4 where swiping gesture speed varies from the inflectionvalue may be number of frames=timespan of media file to skip×frame rateof media file, where the timespan of media file to skip=length ofswiping gesture×(speed of swiping gesture÷inflection value)×(duration ofmedia file÷length of media bar or touch screen display. Using the aboveexample, the number of frames=200 pixels×(50 pixels/second÷100pixels/second)×(60 seconds÷600 pixels)×50 frames per second=500 frames.

Additionally or alternatively, a swiping gesture moving faster than theinflection value may result in the playhead moving proportionally fasterthan the swiping gesture. Such a swiping gesture may be particularlybeneficial in moving the playhead throughout relatively longer mediafiles.

As yet another example, the playhead 4 may not necessarily move at aspeed directly proportional to the speed of the swiping gesture, butrather any algorithm or relationship dependent on the swiping gesturespeed and the inflection value may be used to determine the speed of theplayhead 4. The algorithm may be dependent on a variety of parameters,and the number of frames by which to move the playhead 4 may bedependent upon

Furthermore, in some examples, the direction of the movement of theplayhead 4 may correspond to the direction of the swiping gesture. Aswiping gesture to the right may result in an increase in a point intime or a “fast forwarding” of the media file. A swiping gesture to theleft may result in a decrease in a point in time or a “reverse” or“rewind” of the media file. In some examples, the seek calculation maybe calculated as a negative number, indicating a leftward or backwardsseek or movement of the playhead 4.

Returning to FIG. 3, as shown by operation 320, the apparatus 20 mayinclude means, such as processor 24 and/or the like, for identifying anupdated playhead position based on a previous position of the playhead 4and the seek calculation. Each seek calculation described above may beprovided to adjust the playhead 4 from a previous position. If theresult of the seek calculation is determined to be −10 seconds, theupdated playhead position is identified based on subtracting 10 secondsfrom a previous playhead position. As shown by operation 330, in someembodiments, the apparatus 20 may include means, such as processor 24,user interface 28, and/or the like, for causing the playhead to move tothe updated playhead position.

FIG. 4 provides an illustration of the example user interface depictedin FIG. 1 following movement of the playhead 4. As is illustrated inFIG. 4, and in comparison to the previous state of the user interface inFIG. 1, the swiping gesture 12 reflects a movement of the pointingobject 10 to the right. In some examples, and as illustrated in FIG. 4,causing the playhead 4 to move to the updated played position mayinclude displaying playhead 4 in the updated position on the media bar6. In some examples, the playhead 4 and/or media bar 6 may not bedisplayed, but the playhead 4 is nevertheless updated such that a usermay begin playback or allow for other configurations and editing of themedia file at the corresponding point in time of the media file. Theplayback and/or displayed frame of the media file in area 2 may beupdated accordingly. For example, as illustrated in FIG. 4, the area 2is updated to play or reflect the paused frame of the media file basedon the updated playhead position. In some example embodiments, playbackmay occur along with the swiping gesture at speeds commensurate with themovement of the playhead 4 so as to provide a fast forward or rewindingeffect in area 2. The timestamp 8 associated with the playhead positionmay be updated accordingly, or in some examples, the timestamp 8 may notbe displayed.

In some examples, operations 340-370 may be optionally provided asindicated by the dashed lines. In this regard, a user may continue aswiping gesture at varying speeds and/or directions to fine-tune theplayhead to the precise frame desired, such as for playback or othermedia file editing.

As shown by operation 340, the apparatus 20 may include means, such asthe user interface 28, processor 24, and/or the like, for receiving anindication of a continuation of the swiping gesture in an instance apointing object is not removed from the touch screen display surfaceduring the swiping gesture. For example, the above operations 300-330may enable scrubbing of the media file such that the playhead 4 is movedto generally the desired portion or point in time of the media file. Insome embodiments, a pointing object 10 may maintain contact with thetouch screen display 29, and continue the swiping gesture, which mayinclude a change in speed and/or direction of the swiping gesture. Asdescribed above, in some examples, the playhead 4 may moveproportionally to the speed of the swiping gesture. A user may thereforestart with a relatively fast swiping gesture speed, and gradually slowthe swiping gesture, changing directions if necessary, to hone in on thedesired portion of the media file.

As such, continuing to operation 350, the apparatus 20 may includemeans, such as the processor 24 and/or the like, for performing a secondseek calculation based on a second speed that varies from the firstspeed, a second direction of the continuation of the swiping gesture, asecond distance of the continuation of the swiping gesture, and theinflection value. Similar to operation 320 above, as shown by operation360, the apparatus 20 may include means, such as processor 24 and/or thelike, for identifying a second playhead position based on the updatedplayhead position and the second seek calculation. Similar to operation330 above, as shown by operation 370, the apparatus 20 may includemeans, such as processor 24 and/or the like, for causing the playhead 4to move to the second playhead position. Any of the operations 300-370may therefore be repeated to enable a user to move the playhead 4 to thegeneral desired portion of the media file.

In some examples, a user may desire to move the playhead 4 to a preciseframe of the media file. In this scenario, a threshold speed may be usedsuch that when the swiping gesture speed falls below the thresholdspeed, the inflection value is no longer used to calculate the movementof the playhead 4, but rather, the playhead 4 moves at a predefinedrate, such as one frame at a time per unit of distance of the swipinggesture. FIG. 5 provides example operations of the apparatus 20 toenable a user to move the playhead 4 one frame at a time, according toexample embodiments in which the swiping gesture speed is less than thethreshold speed.

For example, at operation 400, the apparatus 20 may include means, suchas processor 24 and/or the like, for determining a unit of requireddistance of the swiping gesture by which to move the playhead one frame.For example, the unit of required distance may be predefined and fixed.In some examples, the unit of required distance may be determined basedon a size of the mobile device 22 and/or touch screen display 29 forexample. Dynamic determination of the unit of required distance maytherefore ensure a user has enough space to fine tune the playhead tothe precise frame desired. A required distance of the swiping gesture ofthe swiping gesture by which to move the playhead one frame may be 10pixels, for example.

As shown by operation 410, the apparatus 20 may include means, such asprocessor 24, user interface 28, and/or the like, for determining thefirst speed is less than a threshold speed. As another example, theapparatus 20 may determine that a speed of the continuous swipinggesture drops below a threshold speed. The threshold speed may bepredefined and stored on memory 26, for example. As an alternative, thethreshold speed may be calculated based on the length of the media fileand/or length of the touch screen display 29, for example, so as toenable efficient inputs by the user without running out of space on thetouch screen display 29. A threshold speed may be 20 frames per second,for example.

Regardless of how the threshold speed is determined, once the swipinggesture speed falls below the threshold speed, at operation 420, theapparatus 20 may include means, such as processor 24, user interface 28,and/or the like, for causing the playhead to move at the predefinedrate, such as one frame per unit of required distance of the swipinggesture. The user may therefore continue to drag or swipe the pointingobject 10 at relatively slow speeds (e.g., below the threshold speed),to fine tune and precisely move the playhead to the desired point intime of the media file. The user may achieve this fine tuning byredirecting the swiping gesture back and forth in either direction.Swiping gestures to the right, made below the threshold speed, mayadvance the playhead 4 one frame at a time, while movement to the leftmay reverse the playhead 4 one frame at a time. Referring to the aboveexample with a threshold speed of 20 pixels per second and the unit ofrequired distance of the swiping gesture being 10 pixels, when a userslows the swiping gesture to less than 20 pixels per second, theplayhead 4 may move one frame at a time for each 10 pixels of the touchscreen display 29 covered by the swiping gesture.

In some examples, the user may move the playhead 4 to the desired framewith one continuous swiping gesture and may not lift the pointing object10 until the desired frame is reached. In some examples, according tooperation 430, apparatus 20 may include means, such as processor 24,user interface 28, and/or the like, for causing playback of the mediafile at a current playhead position in response to removal of theswiping gesture. That is, once the pointing object 10 no longer contactsthe touch screen display 29, the playback resumes. As an alternativeexample, the playhead 4 may remain paused such that playback does notresume, but the user interface 28 may change from a scrubbing mode toanother mode, such as a video editing mode. A scrubbing mode may be astate of the user interface 28 in which touch inputs and/or swipinggestures are interpreted so as to result in movement of the playhead 4as described herein, while other modes may interpret touch inputs and/orswiping gestures to perform some other operation.

In this regard, as the playhead 4 remains paused, the user may provideadditional inputs via the user interface 28 to engage other applicationsand/or functions of the apparatus 20. For example, the user may selectan audio file to incorporate into the media file at the current playheadposition. As yet another example, a user may utilize other applicationsto edit a particular frame of the media file, and/or add specialeffects. Furthermore, the user may select a frame for the purposes ofextraction of a frame, for instance extract a particularly flatteringfacial expression, or highlight of a fast moving performance. Aparticular frame may be selected to define an identifiable frame as theposter, cover frame, or thumbnail image for the media file. A user maypick a frame to become the new in- or out-point, such as to remove adistraction or mistake from a video. In general, embodiments providedherein may be used to view and analyze fast movements from a media file.

Embodiments provided herein enable users to scrub a media file on anydevice, but are particularly beneficial on mobile devices having limiteddisplay space. Varying the movement of the playhead 4 based on the speedof the swiping gesture provides the user with fine control of theplayhead 4. According to example embodiments, a user may providecontinuous, single-finger touch inputs to precisely select a desiredframe. Other methods providing scene selection by physical movement of aslider or scroll bar resulting in a constant movement of the playhead 4at fixed rate allow for only generalized selection of portions of themedia file. Particularly with longer media files, and/or small devicedisplays, the user will otherwise find great difficulty in moving thepointing object 10, playhead 4, slider, and/or scrollbar the precise andfine-grained distances required to achieve movement of the playhead 4frame by frame. As such, the method, apparatus and computer programproduct provide numerous technical advantages including the conservationof processing resources and the associated power consumption otherwiseexpended to support attempt after attempt of a user selecting a desiredframe of a media file, so as permit the user to move the playhead 4 to adesired frame in a more expeditious and efficient manner.

In addition to supporting scrubbing of media files, the computing deviceand/or apparatus 20 provided herein may be configured to support one ormore other functions. For example, the computing device of an exampleembodiment may also support a mapping application so as to present mapsor otherwise provide mapping information. In order to support a mappingapplication, the computing device may include or otherwise be incommunication with a geographic database, such as may be stored inmemory 26. For example, the geographic database includes node datarecords, road segment or link data records, point of interest (POI) datarecords, and other data records. More, fewer or different data recordscan be provided. In one embodiment, the other data records includecartographic (“carto”) data records, routing data, and maneuver data.One or more portions, components, areas, layers, features, text, and/orsymbols of the POI or event data can be stored in, linked to, and/orassociated with one or more of these data records. For example, one ormore portions of the POI, event data, or recorded route information canbe matched with respective map or geographic records via position orglobal positioning system (GPS) data associations (such as using knownor future map matching or geo-coding techniques), for example.

In example embodiments, the road segment data records are links orsegments representing roads, streets, or paths, as can be used in thecalculated route or recorded route information for determination of oneor more personalized routes, according to example embodiments. The nodedata records are end points corresponding to the respective links orsegments of the road segment data records. The road link data recordsand the node data records represent a road network, such as used byvehicles, cars, and/or other entities. Alternatively, the geographicdatabase can contain path segment and node data records or other datathat represent pedestrian paths or areas in addition to or instead ofthe vehicle road record data, for example.

The road/link segments and nodes can be associated with attributes, suchas geographic coordinates, street names, address ranges, speed limits,turn restrictions at intersections, and other navigation relatedattributes, as well as POIs, such as gasoline stations, hotels,restaurants, museums, stadiums, offices, automobile dealerships, autorepair shops, buildings, stores, parks, etc. The geographic database caninclude data about the POIs and their respective locations in the POIdata records. The geographic database can also include data aboutplaces, such as cities, towns, or other communities, and othergeographic features, such as bodies of water, mountain ranges, etc. Suchplace or feature data can be part of the POI data or can be associatedwith POIs or POI data records (such as a data point used for displayingor representing a position of a city). In addition, the geographicdatabase can include event data (e.g., traffic incidents, constructions,scheduled events, unscheduled events, etc.) associated with the POI datarecords or other records of the geographic database.

The geographic database can be maintained by the content provider (e.g.,a map developer) in association with the services platform. By way ofexample, the map developer can collect geographic data to generate andenhance the geographic database. There can be different ways used by themap developer to collect data. These ways can include obtaining datafrom other sources, such as municipalities or respective geographicauthorities. In addition, the map developer can employ field personnelto travel by vehicle along roads throughout the geographic region toobserve features and/or record information about them, for example.Also, remote sensing, such as aerial or satellite photography, can beused.

The geographic database can be a master geographic database stored in aformat that facilitates updating, maintenance, and development. Forexample, the master geographic database or data in the master geographicdatabase can be in an Oracle spatial format or other spatial format,such as for development or production purposes. The Oracle spatialformat or development/production database can be compiled into adelivery format, such as a geographic data files (GDF) format. The datain the production and/or delivery formats can be compiled or furthercompiled to form geographic database products or databases, which can beused in end user navigation devices or systems.

For example, geographic data is compiled (such as into a platformspecification format (PSF) format) to organize and/or configure the datafor performing navigation-related functions and/or services, such asroute calculation, route guidance, map display, speed calculation,distance and travel time functions, and other functions, by a navigationdevice, such as by the computing device, for example. Thenavigation-related functions can correspond to vehicle navigation,pedestrian navigation or other types of navigation. The compilation toproduce the end user databases can be performed by a party or entityseparate from the map developer. For example, a customer of the mapdeveloper, such as a navigation device developer or other end userdevice developer, can perform compilation on a received geographicdatabase in a delivery format to produce one or more compiled navigationdatabases.

As mentioned above, the server side geographic database can be a mastergeographic database, but in alternate embodiments, the client sidegeographic database can represent a compiled navigation database thatcan be used in or with the computing device to provide navigation and/ormap-related functions. For example, the geographic database can be usedwith the end user device to provide an end user with navigationfeatures. In such a case, the geographic database can be downloaded orstored on the computing device, such as in applications, or thecomputing device can access the geographic database through a wirelessor wired connection (such as via a server and/or a communicationnetwork), for example.

In one embodiment, the computing device can be an in-vehicle navigationsystem, a personal navigation device (PND), a portable navigationdevice, a cellular telephone, a mobile phone, a personal digitalassistant (PDA), a watch, a camera, a computer, and/or other device thatcan perform navigation-related functions, such as digital routing andmap display.

Thus, in addition to enabling scrubbing of media files as describedabove, a user can use the computing device of an example embodiment fornavigation and/or guidance along a mapped route. For example, a user mayprovide swiping gestures of various speeds and directions to navigatealong a planned route. In some examples, a virtual location along aplanned route may move at speeds calculated according to exampleembodiments, similar to the movement of the playhead for scrubbing of amedia file. Information regarding the virtual location, such as pointsof interest, traffic information, satellite imagery, and/or pre-capturedimagery may therefore be provided on a display of the computing deviceas the virtual location is updated. In this regard, in additional to theleft and right movements of the swiping gesture corresponding tomovements of the playhead within a media file, swiping gestures made inany direction on the touch screen display may be detected and/orotherwise received such that a corresponding navigational directionalong a planned route is reflected on the user interface.

As yet another example, example embodiments provided herein may beapplied to zooming in and out of and/or panning of images, and/or framesof video content. Particularly high level imagery, such as satelliteimagery, may be improved by applying an example embodiment providedherein. A user could therefore zoom and/or pan to a precisely desiredarea and focus of an image using a mobile device.

As described above, FIGS. 3 and 4 illustrate a flowchart of an apparatus20, method and computer program product according to example embodimentsof the invention. It will be understood that each block of theflowchart, and combinations of blocks in the flowchart, may beimplemented by various means, such as hardware, firmware, processor,circuitry, and/or other communication devices associated with executionof software including one or more computer program instructions. Forexample, one or more of the procedures described above may be embodiedby computer program instructions. In this regard, the computer programinstructions which embody the procedures described above may be storedby a memory device 26 of an apparatus employing an embodiment of thepresent invention and executed by a processor 24 of the apparatus. Aswill be appreciated, any such computer program instructions may beloaded onto a computer or other programmable apparatus (for example,hardware) to produce a machine, such that the resulting computer orother programmable apparatus implements the functions specified in theflowchart blocks. These computer program instructions may also be storedin a computer-readable memory that may direct a computer or otherprogrammable apparatus to function in a particular manner, such that theinstructions stored in the computer-readable memory produce an articleof manufacture the execution of which implements the function specifiedin the flowchart blocks. The computer program instructions may also beloaded onto a computer or other programmable apparatus to cause a seriesof operations to be performed on the computer or other programmableapparatus to produce a computer-implemented process such that theinstructions which execute on the computer or other programmableapparatus provide operations for implementing the functions specified inthe flowchart blocks.

Accordingly, blocks of the flowchart support combinations of means forperforming the specified functions and combinations of operations forperforming the specified functions for performing the specifiedfunctions. It will also be understood that one or more blocks of theflowchart, and combinations of blocks in the flowchart, can beimplemented by special purpose hardware-based computer systems whichperform the specified functions, or combinations of special purposehardware and computer instructions.

In some embodiments, certain ones of the operations above may bemodified or further amplified. Furthermore, in some embodiments,additional optional operations may be included, some of which have beendescribed above. Modifications, additions, or amplifications to theoperations above may be performed in any order and in any combination.

Many modifications and other embodiments of the inventions set forthherein will come to mind to one skilled in the art to which theseinventions pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the inventions are not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included within the scope of the appended claims.Moreover, although the foregoing descriptions and the associateddrawings describe example embodiments in the context of certain examplecombinations of elements and/or functions, it should be appreciated thatdifferent combinations of elements and/or functions may be provided byalternative embodiments without departing from the scope of the appendedclaims. In this regard, for example, different combinations of elementsand/or functions than those explicitly described above are alsocontemplated as may be set forth in some of the appended claims.Although specific terms are employed herein, they are used in a genericand descriptive sense only and not for purposes of limitation.

That which is claimed:
 1. A method for enabling scrubbing of a mediafile with use of a touch screen display, the method comprising:receiving an indication of a swiping gesture; calculating a seekcalculation comprising a number of frames by which to move a playhead,wherein the seek calculation is based on a first speed of the swipinggesture, the distance of the swiping gesture, and an inflection value,wherein (a) the inflection value is a predefined rate and (b) the seekcalculation is based on a ratio of the first speed and the inflectionvalue, wherein, when the first speed of the swiping gesture is less thanthe inflection value, the distance of the swiping gesture corresponds toa smaller number of frames than when the first speed of the swipinggesture is greater than the inflection value; identifying an updatedplayhead position based on a previous position of the playhead and theseek calculation; and causing the playhead to move to the updatedplayhead position, wherein the seek calculation is calculated in framesas a direct proportion of (a) the ratio of the first speed and theinflection value and (b) the first distance.
 2. The method according toclaim 1, further comprising: receiving an indication of a continuationof the swiping gesture, wherein a pointing object is not removed fromthe touch screen display surface during the swiping gesture; calculatinga second seek calculation based on a second speed that varies from thefirst speed, a second direction of the continuation of the swipinggesture, a second distance of the continuation of the swiping gesture,and the inflection value; identifying a second playhead position basedon the updated playhead position and the second seek calculation; andcausing the playhead to move to the second playhead position.
 3. Themethod of claim 2, wherein the continuation of the swiping gesturecomprises a change in direction such that second direction of thecontinuation of the swiping gesture is opposite of the first directionof the swiping gesture.
 4. The method of claim 1, further comprising:causing playback of the media file at a current playhead position inresponse to removal of the swiping gesture.
 5. The method of claim 1,wherein the inflection value is a predefined number of frames persecond, the first speed is determined in pixels per second, and thefirst distance is determined in pixels.
 6. The method of claim 1,further comprising: determining a unit of required distance of theswiping gesture by which to move the playhead one frame; determining thefirst speed is less than a threshold speed; and causing the playhead tomove one frame per unit of required distance of the swiping gesture. 7.An apparatus enabling scrubbing of a media file with use of a touchscreen display, the apparatus comprising at least one processor and atleast one memory including computer program code, the at least onememory and the computer program code configured to, with the processor,cause the apparatus to perform at least: receiving an indication of aswiping gesture; calculating a seek calculation comprising a number offrames by which to move a playhead, wherein the seek calculation isbased on a first speed of the swiping gesture, the distance of theswiping gesture, and an inflection value, wherein (a) the inflectionvalue is a predefined rate and (b) the seek calculation is based on aratio of the first speed and the inflection value, wherein, when thefirst speed of the swiping gesture is less than the inflection value,the distance of the swiping gesture corresponds to a smaller number offrames than when the first speed of the swiping gesture is greater thanthe inflection value; identifying an updated playhead position based ona previous position of the playhead and the seek calculation; andcausing the playhead to move to the updated playhead position, whereinthe seek calculation is calculated in frames as a direct proportion of(a) the ratio of the first speed and the inflection value and (b) thefirst distance.
 8. The apparatus according to claim 7, wherein the atleast one memory and the computer program code are further configured tocause the apparatus to perform at least: receiving an indication of acontinuation of the swiping gesture, wherein a pointing object is notremoved from the touch screen display surface during the swipinggesture; calculating a second seek calculation based on a second speedthat varies from the first speed, a second direction of the continuationof the swiping gesture, a second distance of the continuation of theswiping gesture, and the inflection value; identifying a second playheadposition based on the updated playhead position and the second seekcalculation; and causing the playhead to move to the second playheadposition.
 9. The apparatus according to claim 8, wherein thecontinuation of the swiping gesture comprises a change in direction suchthat second direction of the continuation of the swiping gesture isopposite of the first direction of the swiping gesture.
 10. Theapparatus according to claim 7, wherein the at least one memory and thecomputer program code are further configured to cause the apparatus toperform at least: causing playback of the media file at a currentplayhead position in response to removal of the swiping gesture.
 11. Theapparatus according to claim 7, wherein the inflection value is apredefined number of frames per second, the first speed is determined inpixels per second, and the first distance is determined in pixels. 12.The apparatus according to claim 7, wherein the at least one memory andthe computer program code are further configured to cause the apparatusto perform at least: determining a unit of required distance of theswiping gesture by which to move the playhead one frame; determining thefirst speed is less than a threshold speed; and causing the playhead tomove one frame per unit of required distance of the swiping gesture. 13.A computer program product enabling scrubbing of a media file with useof a touch screen display, the computer program product comprising atleast one non-transitory computer-readable storage medium havingcomputer-executable program code instructions stored therein, thecomputer-executable program code instructions comprising program codeinstructions for: receiving an indication of a swiping gesture;performing a seek calculation comprising a number of frames by which tomove a playhead, wherein the seek calculation is based on a first speedof the swiping gesture, the distance of the swiping gesture, and aninflection value, wherein (a) the inflection value is a predefined rateand (b) the seek calculation is based on a ratio of the first speed andthe inflection value, wherein, when the first speed of the swipinggesture is less than the inflection value, the distance of the swipinggesture corresponds to a smaller number of frames than when the firstspeed of the swiping gesture is greater than the inflection value;identifying an updated playhead position based on a previous position ofthe playhead and the seek calculation; and causing the playhead to moveto the updated playhead position, wherein the seek calculation iscalculated in frames as a direct proportion of (a) the ratio of thefirst speed and the inflection value and (b) the first distance.
 14. Thecomputer program product according to claim 13, wherein thecomputer-executable program code instructions further comprises programcode instructions for: receiving an indication of a continuation of theswiping gesture, wherein a pointing object is not removed from the touchscreen display surface during the swiping gesture; calculating a secondseek calculation based on a second speed that varies from the firstspeed, a second direction of the continuation of the swiping gesture, asecond distance of the continuation of the swiping gesture, and theinflection value; identifying a second playhead position based on theupdated playhead position and the second seek calculation; and causingthe playhead to move to the second playhead position.
 15. The computerprogram product according to claim 14, wherein the continuation of theswiping gesture comprises a change in direction such that seconddirection of the continuation of the swiping gesture is opposite of thefirst direction of the swiping gesture.
 16. The computer program productaccording to claim 13, wherein the computer-executable program codeinstructions further comprises program code instructions for: causingplayback of the media file at a current playhead position in response toremoval of the swiping gesture.
 17. The computer program productaccording to claim 13, wherein the inflection value is a predefinednumber of frames per second, the first speed is determined in pixels persecond, and the first distance is determined in pixels.
 18. The computerprogram product according to claim 13, wherein the computer-executableprogram code instructions further comprises program code instructionsfor: determining a unit of required distance of the swiping gesture bywhich to move the playhead one frame; determining the first speed isless than a threshold speed; and causing the playhead to move one frameper unit of required distance of the swiping gesture.